import { Sequelize } from 'sequelize-typescript'
import path from 'node:path'

const sequelize = new Sequelize({
  database: 'qa_server',
  username: 'root',
  password: '123456',
  host: 'localhost',
  dialect: 'mysql',
  models: [path.join(__dirname, '../models')],
  logging: console.log,
  timezone: '+08:00',         // 设置为东八区(北京时间)
  dialectOptions: {
    charset: 'utf8mb4',       // 支持完整的UTF-8编码(包括emoji)
    dateStrings: true,        // 强制日期类型作为字符串返回
    typeCast: true            // 自动转换数据库字段类型
  },
  define: {
    charset: 'utf8mb4',
    collate: 'utf8mb4_unicode_ci',
    timestamps: true,          // 启用自动时间戳
    createdAt: 'createAt',     // 使用createAt字段名
    updatedAt: 'updatedAt',    // 使用updatedAt字段名
    deletedAt: 'deletedAt',    // 使用deletedAt字段名
    paranoid: true,            // 启用软删除
    underscored: true,         // 使用下划线命名
    freezeTableName: true      // 禁止修改表名
  }
})

export default sequelize